package com.szrt.day20170420.ch01;





import static org.junit.Assert.*;

import org.junit.Test;



/**
 * 1：String aa="abc";
 * 如果内存中存在一个用字面量搞出来的字符串"abc"。那么就不会创建新的地址。而是直接指向原来
 * 
 * 2： String aa = new String("abc");
 * 不管内存中是否存在一个字符串"abc"。都会创建新的内存地址。
 * 
 * @author scott-13926583118
 * 2017年4月20日
 *
 */
public class StringTest {
	
	
	
	
	@Test
	public void testName() throws Exception {
		String a="Hello";
		
		System.out.println(a);
		
		a = a+"World";
		
		System.out.println(a);
		
	}
	
	@Test
	public void demo02() throws Exception {
		
		//String 一旦创建了就不能改变
		String str2=new String("abc");
		
		//字面量
		String str1="abc";
		
		
		System.out.println(str1 == str2);
		
		//1
		
	}
	
	
	@Test
	public void demo01() throws Exception {
		
		//String 一旦创建了就不能改变
		
		String str2="abc";
		String str1="abc";
		System.out.println(str1 == str2);
		
		//1
		
	}
	
	@Test
	public void sbTest() throws Exception {
		
		
		//初级程序员
		String aa="aa";
		String bb="bb";
		int a=123;
		//System.out.println(aa+bb+a);
		
		//优化  以后凡是用到字符串相加的时候  StringBuffer/StringBuilder
		
		StringBuffer  sb=new StringBuffer();
		StringBuffer append = sb.append(aa).append(bb).append(a);
		System.out.println(append);
		
		
		StringBuffer stringBuffer = new StringBuffer("This is my Book");
		
		
		//这个单词的首字母所在的下标
		System.out.println(stringBuffer.indexOf("Book"));
		
		
		//在下标为2对应的字母i之前插入
		stringBuffer.insert(2, " AA ");
		System.out.println(stringBuffer);
		System.out.println(stringBuffer.reverse());
		
		
	}
	
	@Test
	public void splitTest() throws Exception {
		
		String str1="123,456,789";
		//System.out.println(str1.length());
		
		String[] splits = str1.split(",");
		//System.out.println(splits.length);
		
		
		//批量删除    10,20,30
		for(String split:splits){
			System.out.println(split);
			
		}
		
		
		String [] as ={"123","456","789"};
		//System.out.println(as.length);
		
	}
	
	@Test
	public void stringTest02() throws Exception {
		
		String str1=" abcdaad  ";
		
		//ascii
		//System.out.println(str1.indexOf(98));
		//System.out.println(str1.indexOf("c"));
		//System.out.println(str1.lastIndexOf("d"));
		
		
		//子字符串有包含2
		//System.out.println(str1.substring(2));
		
		
		//包括开始   and 没有包括结束
		//System.out.println(str1.substring(-1, 2));
		
		System.out.println(str1.length());
		System.out.println(str1.trim().length());
		
		
	}
	@Test
	public void stringTest01() throws Exception {
		
		String str1="abcd";
		
		//String str2=new String("aa");
		
		System.out.println(str1.charAt(2));
		
	}

}
